//package com.tang.listener;
//
//import com.netflix.appinfo.InstanceInfo;
//import org.springframework.cloud.netflix.eureka.server.event.*;
//import org.springframework.context.event.EventListener;
//import org.springframework.stereotype.Component;
//
///**
// * Created by wuweifeng on 2017/10/10.
// * 分享地址：https://blog.csdn.net/tianyaleixiaowu/article/details/78192922
// * eureka监听各服务状态，下线、重连等，并做相应的处理
// * 在一些场景下，我们需要监听eureka服务中心的一些状态，譬如某个微服务挂掉了，我们希望能监听到，并给管理员发送邮件通知。
// * Eureka的server端会发出5个事件通知，分别是：
// *     EurekaInstanceCanceledEvent 服务下线事件
// *     EurekaInstanceRegisteredEvent 服务注册事件
// *     EurekaInstanceRenewedEvent 服务续约事件
// *     EurekaRegistryAvailableEvent Eureka注册中心启动事件
// *     EurekaServerStartedEvent Eureka Server启动事件
// * 可以邮件通知管理员，某某服务挂掉了。
// */
//@Component
//public class EurekaStateChangeListener {
//
//    @EventListener
//    public void listen(EurekaInstanceCanceledEvent eurekaInstanceCanceledEvent) {
//        //服务断线事件
//        String appName = eurekaInstanceCanceledEvent.getAppName();
//        String serverId = eurekaInstanceCanceledEvent.getServerId();
//        System.out.println(appName);
//        System.out.println(serverId);
//    }
//
//    @EventListener
//    public void listen(EurekaInstanceRegisteredEvent event) {
//        InstanceInfo instanceInfo = event.getInstanceInfo();
//        System.out.println(instanceInfo);
//    }
//
//    @EventListener
//    public void listen(EurekaInstanceRenewedEvent event) {
//        event.getAppName();
//        event.getServerId();
//    }
//
//    @EventListener
//    public void listen(EurekaRegistryAvailableEvent event) {
//
//    }
//
//    @EventListener
//    public void listen(EurekaServerStartedEvent event) {
//        //Server启动
//    }
//}
